package cn.wolfcode.business.service;

import cn.wolfcode.business.domain.BusAudit;
import cn.wolfcode.business.domain.BusBpmnInfo;
import cn.wolfcode.business.mapper.BusBpmnInfoMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.net.http.HttpResponse;
import java.util.List;


public interface BusBpmnInfoService {
    /**
     * 查询所有的流程定义
     * @return 流程定义的列表
     */
    List<BusBpmnInfo> getBpmnInfoList();

    /**
     * 实现流程定义的部分
     * @param bpmnType  部署的流程类型
     * @param file      部署的流程定义文件
     * @param info      备注信息
     * @return
     */
    Integer add(Integer bpmnType, MultipartFile file, String info) throws IOException;

    /**
     * 撤回流程部署
     * @param id
     * @return
     */
    Integer delete(Long id);

    /**
     *查看部署的bpmn文件或者png图片
     * @param id     流程定义明细的id
     * @param type    文件类型
     */
    InputStream readResource(Long id, String type);

    /**
     * 根据申请的流程定义的类型查询到对应的流程定义的key和版本号
     * @param flowAuditType
     * @return
     */
    BusBpmnInfo selectProcessInstanceByBpmnType(Integer flowAuditType);

}
